home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / comm / www / HTMLDate.lha / HTMLDate.ged next >
Text File  |  1997-07-22  |  5KB  |  161 lines

  1. /* Update the revision date in HTML docs using GoldED V4+ ©1997 Roy E Brown
  2.    Email: roy@ebrown.demon.co.uk
  3.  
  4.    $VER: HTMLDate.ged V1.5 (22.7.97)
  5.  
  6.    Some revisions (marked) and suggestions by Gregor B. Rosenauer aka Rosso
  7.    
  8.    HTMLDate.ged will update the revision date of your HTML pages.
  9.  
  10.    HTMLDate.ged searches for a user-defined text string, deletes the existing
  11.    date and enters the current date into the text.
  12.  
  13.    HTMLDate.ged is configured to look for a text string (default "Last revised:"
  14.    - without the quotes). It then assumes that this string is followed by
  15.    either a 3 or 4 word date string, as in the 2 examples below.
  16.  
  17.    Your date string can be in one of two styles:
  18.  
  19.     (1)   Last revised on: 31 March 1997
  20.  
  21.     (2)   Last revised: Monday, 31 March 1997
  22.  
  23.    The date itself can be surrounded by any number of text style tags i.e
  24.  
  25.    '<B><I>31 March 1997</I></B>'.  Thanks to Rosso for implementing multiple
  26.                                    HTML style tags.
  27.  
  28.    Define the string to search for in the variable 'Str' below.
  29.  
  30.    Define the date style in the 'Style' variable below.
  31.  
  32.    You should set the GoldED default date style (Extras/Options global/gui) to
  33.    one of the following -
  34.  
  35.      Style 1   %e %B %Y
  36.  
  37.      Style 2   %A, %e %B %Y  (The comma is optional)
  38.  
  39.    This will then insert the date in the correct format.
  40. */
  41.  
  42. Str="Last revised:"  /* Enter your required search string - can be any length,
  43.                         within reason - it doesn't need to be case sensitive -
  44.                         thanks again to Rosso for the idea */
  45.  
  46. Style=1              /* Set the style of your date string (see above) */
  47.  
  48. /* **************************************************************************
  49.   Please do not change anything below here, unless you know what you're doing
  50.   of course.
  51.   *************************************************************************** */
  52.  
  53. Options Results                           /* enable return codes */
  54. If (Left(Address(),6) ~="GOLDED") Then    /* not started by GoldEd? */
  55.   Address 'GOLDED.1'
  56.  
  57. 'LOCK CURRENT RELEASE=4'                  /* lock GUI, gain access */
  58.  
  59. If (RC ~= 0) Then Exit
  60.  
  61. Options Failat 6                          /* ignore warnings */
  62.  
  63. Signal On Syntax                          /* ensure clean exit */
  64.  
  65. Vers="HTMLDate V1.5 ©1997 Roy E Brown"
  66.  
  67. If Style<1|Style>2 Then
  68.   Do
  69.     'REQUEST TITLE="'Vers'"
  70.              BODY="The Style variable is|outside the permitted range"
  71.              BUTTON="Oops"'
  72.     'UNLOCK'
  73.     Exit
  74.   End
  75.  
  76. If Style=1 Then
  77.   StyleLen=2              /* 31 March 1997 */
  78. Else
  79.   StyleLen=3              /* Monday, 31 March 1997 */
  80.  
  81. /* Let's find the string and jump to it */
  82. 'FIND STRING="'Str'" FIRST WORDS=0 QUIET'
  83.  
  84. 'QUERY BUFFER VAR=BUFF'
  85.  
  86. If Index(Upper(BUFF),Upper(Str))=0 Then
  87.   Do
  88.     'REQUEST TITLE="'Vers'"
  89.              BODY="There doesn''t appear to be|a revision date on this page"
  90.              BUTTON="Oops"'
  91.      'UNLOCK'
  92.      Exit
  93.   End
  94.  
  95. /* Move cursor beyond text string and back one place */
  96. Do I=1 to Words(Str)
  97.  'NEXT'
  98. End
  99.  
  100. 'LEFT'
  101.  
  102. /* Let's see what the ASCII code of the character under the cursor is */
  103.  
  104. 'QUERY CODE'  /* '<' is ASCII Code 60 */
  105.  
  106. Do While (RESULT=60)          /* skip ALL HTML-tags */
  107.     'RIGHT'; 'NEXT'; 'LEFT';  /* move to next word  */
  108.     'QUERY CODE'              /* revised by Rosso, 6.7.97 */
  109. End
  110.  
  111. 'RIGHT';            /* go to start of next word */
  112.  
  113. /* Save date insertion point - needed if 'EXCLUDE CURSOR' is ON.
  114.                                Revised by Rosso, 6.7.97 */
  115. 'PING SLOT=0'
  116.  
  117. /* Mark the start of the block, move to the last character of the date,
  118.    mark the end of the block and delete the existing date. */
  119.  
  120. 'MARK SET COLUMN BEGIN'
  121.  
  122. Do I=1 to StyleLen
  123.   'NEXT'
  124. End
  125.  
  126. 'ENDWORD'
  127.  
  128. /* Is 'EXCLUDE CURSOR IN BLOCK' on or off? - suggestion by Rosso */
  129.  
  130. 'QUERY EXCLUDE VAR=CURSE'
  131.  
  132. If CURSE="TRUE" Then 'RIGHT' /* EXCLUDE CURSOR is ON therefore */
  133.                              /* move one character to the right */
  134. 'MARK SET END'             
  135.  
  136. 'DELETE BLOCK'
  137.  
  138. /* Recall date insertion point - needed if 'EXCLUDE CURSOR' is ON.
  139.                                  Revised by Rosso, 6.7.97 */
  140. 'PONG SLOT=0'                  
  141.  
  142. /* Get the current date and insert into the document */
  143. 'QUERY DATE'
  144.  
  145. 'TEXT T "'Strip(RESULT,'B')'"'  /* remove leading and trailing blanks */
  146.                                 /* added - Rosso, 6.7.97 */
  147.  
  148. 'UNLOCK' /* VERY important: unlock GUI */
  149.  
  150. Exit
  151.  
  152. SYNTAX:
  153.  
  154. Say "Sorry, error line" SIGL ":" Errortext(RC) ":-("
  155.  
  156. 'UNLOCK'
  157.  
  158. Exit
  159.  
  160.  
  161.